﻿
namespace YanZhiwei.DotNet3._5.Utilities.WCF
{
    public class WCFHelper
    {
        /*　
         * WCF（Windows Communication Foundation）是微软为构建面向服务的应用程序（SOA）而提供的统一编程模型，借助该模型，使得在构建分布式系统中，无需再考虑如何去实现通信的相关的问题，使开发人员更加关注与系统业务逻辑本身的实现。
         * 
         * EndPoint:服务的提供者将服务通过一个或多个终结点发布给潜在的服务消费者，服务的消费者则通过与之匹配的终结点对服务进行消费。终结点由地址（Address）、绑定（Binding）和契约（Contract）三要素组成。
         *          1.地址（Address）：地址标识了服务的位置，提供寻址的辅助信息和标识了服务的真实身份。Address解决了Where the WCF service的问题。
         *          2.绑定（Binding）：绑定实现了通信的所有细节，包括网络传输，消息编码，以及其他为实现某种功能对消息进行的相应处理，例如安全、可靠传输和事务等功能。 
         *          WCF中具有一系列的系统已定义的绑定，如BasicHttpBinding、WsHttpBinding、NetTcpBinding等。Binding解决了How to Communicate with Service的问题。 
         *          3.契约（Contract）：契约是对服务操作的抽象，也是对消息交互模式以及消息结构的定义。WCF的契约大体可以分为两类，一类是对服务操作的描述；
         *          另一类是对数据的描述。服务契约(Service Contract)则属于对服务操作的描述，而后一类包括其余3中契约：数据契约（Data Contract）、消息契约（Message Contract）和错误契约（Fault Contract）。
         *          Contract解决了What function does the Service Provide的问题。
         *  
         * 消息模式: 消息是一个独立的数据单元，它可能由几个部分组成，包括消息正文和消息头。WCF支持多种消息模式，包括请求-恢复、单向和双工通信。不同传输协议支持不同的消息模式，WCF API和运行库还能保证安全而可靠地发送消息。
         * 行为（Behavior）：Behavior的主要作用是定制EndPoint在运行时的一些不要的行为。比如Service回调Client的TimeOut属性的设置。
         * 宿主和宿主进程：服务必须承载于某个进程中，宿主进程是专为承载服务而设计的应用程序，这些宿主进程包括Internet信息服务（即IIS）、Windows激活服务（WAS）、Windows服务。由宿主控制服务的生命周期。
         * 自承载服务：服务除了可以由现有的宿主进程承载外，还可以自承载，自承载服务是由开发人员创建的进程应用程序来承载服务。该应用程序控制服务的声明周期，设置服务的属性和打开服务和关闭服务等操作。
         */
    }
}
